#region "Mandatory NUnit Imports"
using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;
using NUnit.Framework;
#endregion

//Test Specific Imports
//TODO - Add imports your going to test here


[TestFixture]
public class Fixture1
{
    #region "Custom Trace Listener"
    MyListener listener = new MyListener();

    internal class MyListener : TraceListener
    {
        public override void Write(string message)
        {
            Console.Write(message);
        }


        public override void WriteLine(string message)
        {
            Console.WriteLine(message);
        }
    }
    #endregion


    [SetUp()]
    public void SetUp()
    {
        //Setup our custom trace listener
        if (!Trace.Listeners.Contains(listener))
        {
            Trace.Listeners.Add(listener);
        }

        //TODO - Setup your test objects here
    }

    [TearDown()]
    public void TearDown()
    {
        //Remove our custom trace listener
        if (Trace.Listeners.Contains(listener))
        {
            Trace.Listeners.Remove(listener);
        }

        //TODO - Tidy up your test objects here
    }

    [Test()]
    public void TestAssertion()
    {
        //Use this block when you want to do something and perform an assertion

        //TODO - Do something

        //Then test its ok
        //TODO - Write your assertion statements
        //Assert.AreEqual(ValueItShouldBe, TestObjectsValue, "Error message to display if not");            
    }

    [Test(), ExpectedException(typeof(System.Exception))]
    public void TestException()
    {
        //Use this block when you want to test an exception that is expected to occur
        //Change the exception type to something more explicit, eg ArgumentException

        //TODO - Do something that should raise an exception                 
    }

    [Ignore("Not ready to test")]
    public void IgnoredTest()
    {
        //Use this block when your writing tests that you do not want to include in your test run immediately

        //TODO - write test code here and replace the ignore with a test attribute when you want to include this test
    }
}
